Network traffic preemption using intermittent encapsulation

ABSTRACT

An example method for intermittent encapsulation of preemptable network traffic at a network node can include receiving a frame at the network node and determining if the frame is a preemptable frame. A preemptable frame is a frame that can be preempted, suspended, interrupted, etc. after transmission begins in order to transmit a preemptive frame. If the frame is a preemptable frame, the method can include determining if the preemptable frame satisfies a selective encapsulation rule. If the preemptable frame does not satisfy the selective encapsulation rule, the method can include transmitting the preemptable frame from the network node without encapsulation. Alternatively, if the preemptable frame satisfies the selective encapsulation rule, the method can include encapsulating and transmitting the preemptable frame from the network node. The preemptable frame can be encapsulated with a preemption header and/or a preemption trailer.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/074,037, filed on Nov. 7, 2013, entitled “NETWORK TRAFFIC PREEMPTIONUSING INTERMITTENT ENCAPSULATION,” the disclosure of which is expresslyincorporated herein by reference in its entirety.

BACKGROUND

The variable size of network packets such as Ethernet packets, forexample, can cause unacceptable variations of packet delay fortime-critical packets that caught behind long, lower-priority packetstransmitted just prior to transmission of the time-critical packets. Forsome real-time control networks, transmission of time-critical packetsis scheduled, and to guarantee transmission at the scheduled time,non-critical packets are prevented from occupying the link during thescheduled time. Interface standards, such as Ethernet, do not supportparallel transmission of multiple frames on a single link. Therefore,the transmission scheduling mechanism must guarantee that anynon-critical packet transmission is completed in advance of the timewhen a time-critical packet is scheduled.

In addition to transmission scheduling, preemption may also be used toalleviate the unacceptable variations of packet delay. For example,long, lower-priority packets can be interrupted in order to transmit thetime-critical packets. To avoid waste of bandwidth, transmission of thelong, lower-priority packets is resumed after transmitting thetime-critical packets. A number of methods including low-level coding(e.g., at the line-code level), alternating cyclic redundancy check(“CRC”) schemes and encapsulation have been used to manage preemption.Encapsulation is a popular method because it is less complicated thanlow-level coding and alternating CRC schemes, but encapsulationincreases the bandwidth of the network traffic by adding overhead.Further, every frame from one or more network traffic flows that can bepreempted must be encapsulated, which adds to the overhead.

BRIEF DESCRIPTION OF THE DRAWINGS

The components in the drawings are not necessarily to scale relative toeach other. Like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a block diagram illustrating an example encapsulated frame;

FIG. 2 is a flow diagram illustrating example operations for selectiveencapsulation and transmission of preemptable network traffic;

FIG. 3 is a flow diagram illustrating example operations for receptionof preemptable network traffic; and

FIG. 4 is a block diagram of an example computing device.

DETAILED DESCRIPTION

Unless defined otherwise, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art. Methods and materials similar or equivalent to those describedherein can be used in the practice or testing of the present disclosure.As used in the specification, and in the appended claims, the singularforms “a,” “an,” “the” include plural referents unless the contextclearly dictates otherwise. The term “comprising” and variations thereofas used herein is used synonymously with the term “including” andvariations thereof and are open, non-limiting terms. Whileimplementations will be described for intermittent encapsulation ofEthernet traffic, it will become evident to those skilled in the artthat the implementations are not limited thereto, but are applicable forintermittent encapsulation of network traffic that complies with otherprotocols.

Methods and devices for selectively or intermittently encapsulatingnetwork traffic are provided herein. The selective encapsulationmechanisms can reduce the aggregate overhead of encapsulation. Forexample, instead of encapsulating every frame from a flow or a type offlow (e.g., a preemptable flow), only frames from the preemptable flowthat satisfy a selective encapsulation rule are encapsulated. Framesfrom the preemptable flow that do not satisfy the selectiveencapsulation rule are not encapsulated. Thus, less than every framefrom the preemptable flow is encapsulated according to the selectiveencapsulation mechanisms.

Optionally, the selective encapsulation methods can be applied totraffic complying with Ethernet standards. As discussed above, inrelated art, every frame from a flow or a type of flow (e.g., apreemptable flow) is encapsulated. It should be understood that a flowis defined as packets sharing a unique combination of parameters.Packets that match a particular set of defined parameters are consideredto belong to the same flow. Parameters can be one or more packet-headerfields including, but not limited to, source and destination IP address,port and session number, source and destination MAC address, IP protocoland type of IP service.

A preemptable frame can be a frame that is capable of being preempted(or interrupted, suspended, etc.) after transmission begins, forexample, in order to transmit higher priority traffic such as preemptivetraffic (discussed below). Optionally, the higher priority traffic canbe time-critical traffic. Alternatively or additionally, the preemptivetraffic can optionally be transmitted during a scheduled transmissionwindow, e.g., a scheduled time period reserved for the exclusive orpreferential transmission of the preemptive traffic. In addition,preemptable traffic includes preemptable frames. Transmission ofpreemptable frames can optionally be precluded or de-prioritized duringthe scheduled time period and/or to allow transmission of higherpriority traffic. After the scheduled time period ends and/or aftertransmitting the higher priority traffic, transmission of thepreemptable frames can be resumed.

A preemptive frame is a frame that can cause a preemptable frame to bepreempted (or suspended, interrupted, etc.) after transmission begins. Apreemptive frame can optionally be a non-preemptable frame. Anon-preemptable frame is a frame that cannot be preempted (or suspended,interrupted, etc.) once transmission begins. A preemptive frame canoptionally be transmitted during the predetermined time period and/orbetween fragments of a preemptable frame. In addition, preemptivetraffic includes preemptive frames. Optionally, preemptive traffic canbe higher priority traffic as compared to preemptable traffic.

A preempted frame can be a preemptable frame that has been preempted (orinterrupted, suspended, etc.) after transmission of the preemptableframe begins. Optionally, the preempted frame can be split into aplurality of fragments in order to allow transmission of one or morepreemptive frames, for example, between two fragments of the preemptedframe. Optionally, a preemptable frame can be preempted by a specificpreemptive frame or alternatively can be preempted in order to guaranteethat scheduled transmission of higher priority traffic is clear andavailable.

A fragment can be a single, complete portion of a preempted frame. Afragment can optionally be transmitted from start to finish withoutinterruption. As discussed above, a preempted frame can optionally besplit into a plurality of fragments including a first fragment and alast fragment. Optionally, the preempted frame can include one or moreintermediate fragments between the first and last fragments.Alternatively, the preempted frame can include only the first and lastfragments and no intermediate frame fragments. Additionally, eachfragment can conform to all of the rules for frame transmission. Forexample, for Ethernet frames, each fragment can conform to the rules ofEthernet frame transmission. In this way, each fragment appears to themedia access control (“MAC”) sub-layer as a complete, legal frame.Alternatively, for Ethernet frames, each fragment can break the rules ofEthernet frame transmission. In this way, a solitary fragment would beseen as an illegal entity by a MAC sub-layer.

Referring now to FIG. 1, a block diagram of an example encapsulatedframe 100 is shown. The example encapsulated frame 100 is anencapsulated Ethernet frame, for example. The example encapsulated frame100 includes a preamble 102, a destination address 104 (e.g., adestination MAC address), a source address 106 (e.g., a source MACaddress), a payload 112 and an error code 116 (e.g., a cyclic redundancycheck (“CRC”)). The example encapsulated frame 100 can also optionallyinclude an Ethertype 110. The preamble 102, destination address 104,source address 106, Ethertype 110, payload 112 and error code 116 arewell known in the art and are therefore not discussed in further detailbelow. As discussed above, the network traffic provided in the examplesbelow complies with Ethernet standards. It should be understood thatselective encapsulation should not be limited Ethernet traffic and canbe extended to network traffic complying with other protocols, standardor proprietary.

As discussed above, network traffic can include preemptable frames(e.g., capable of being preempted, interrupted, suspended, etc. aftertransmission begins) and preemptive frames (e.g., capable of causingpreemption, interruption, suspension, etc. after transmission beginsand/or being non-preemptable). This disclosure contemplates thatpreemptable frames can be part of a flow or type of flow, which can beidentified/classified by any means known in the art such as byinspection of one or more of the frame fields, for example. Optionally,preemptive frames are not encapsulated or altered in any manner beforetransmission. Additionally, preemptable frames are optionallyencapsulated with a preemption header 108 and a preemption trailer 114before transmission. The preemption header 108 can optionally occupy theEtherType field of the preemptable frame. The preemption header 108 canoptionally be inserted as the first EtherType, for example. For example,in some implementations, the preemption header 108 can optionally be anouter VLAN tag and the Ethertype 110 can optionally be an inner VLANtag. The preemption header 108 can be coded/numbered to identify anencapsulated, preemptable frame. Additionally, the preemption trailer114 can optionally be inserted before the error code 116 as shown inFIG. 1. The preemption trailer 114 can optionally include a 2-byte codeas provided below.

For example, the preemption trailer 114 can optionally include one ormore of a start code 114A, an end code 11413, a sequence number 114 andreserved bits 114D. The start code 114A can be a 2-bit pattern with code“10” representing a start, first or beginning fragment of a preemptedframe. The start code can optionally occupy the most-significant bits ofthe preemption trailer 114. Additionally, code “01” can represent afragment subsequent to the start fragment of the preempted frame (e.g.,a not start fragment). The remaining codes (e.g., 00 and 11) can beinvalid. Alternatively or additionally, the end code 11413 can be a2-bit pattern with code “10” representing an end or last fragment of thepreempted frame. The end code can optionally occupy the nextmost-significant bits of the preemption trailer 114. Additionally, code“01” can represent a fragment prior to the end fragment of the preemptedframe (e.g., a not end fragment). The remaining codes (e.g., 00 and 11)can be invalid. Alternatively or additionally, the sequence number 114Ccan be a 4-bit pattern representing the order of a plurality offragments of the preempted frame. The sequence number can optionallyoccupy the next most-significant bits of the preemption trailer 114. Forexample, the sequence number 114C of the start fragment can be set to anarbitrary code. The sequence number 114C of the start fragment canoptionally be set to 0000 or any other value. The sequence number 114Cof each fragment subsequent to the start fragment can have anincrementally higher value (e.g., increasing by +1). For example, whenthe sequence number 114C of the start fragment is 1010, the sequencenumbers 114C of the third, fourth, etc. can be 1011, 1100, etc.Optionally, the sequence number 114C can roll over (e.g., from 1111 to0000) when necessary. Optionally, this disclosure contemplates using anydeterministic sequence for the sequence number and should therefore notbe limited to incrementally increasing units. Alternatively oradditionally, the reserved bits 114D can optionally be the 8least-significant bits of the preemption trailer 114. It should beunderstood that the preemption header 108 and the preemption trailer 114discussed above are provided only as examples and that the preemptionheader 108 and the preemption trailer 114 can have alternativeconfigurations while implementing selective encapsulation mechanismsprovided herein.

It should be appreciated that the logical operations described hereinwith respect to the various figures may be implemented (1) as a sequenceof computer implemented acts or program modules (i.e., software) runningon a computing device, (2) as interconnected machine logic circuits orcircuit modules (i.e., hardware) within the computing device and/or (3)a combination of software and hardware of the computing device. Thus,the logical operations discussed herein are not limited to any specificcombination of hardware and software. The implementation is a matter ofchoice dependent on the performance and other requirements of thecomputing device. Accordingly, the logical operations described hereinare referred to variously as operations, structural devices, acts, ormodules. These operations, structural devices, acts and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. It should also be appreciated that more orfewer operations may be performed than shown in the figures anddescribed herein. These operations may also be performed in a differentorder than those described herein.

Referring now to FIG. 2, a flow diagram illustrating example operations200 for intermittent encapsulation and transmission of preemptablenetwork traffic is shown. Optionally, the selective encapsulationmechanisms provided herein can be negotiated by link partner networknodes, for example, using a link layer discovery protocol. Each linkpartner can be optionally be configured to encapsulate and transmitframes after the link partners have confirmed the mutual capability tosupport preemption. At 202, a frame is received at a network node. Thenetwork node can optionally be a packet-switching element such as aswitch, router, gateway, etc. Then, at 204, the network node determineswhether the frame is a preemptable frame (e.g., capable of beingpreempted, interrupted, suspended, etc. after transmission begins) or apreemptive frame (e.g., capable of causing preemption, interruption,suspension, etc. after transmission begins and/or beingnon-preemptable). As discussed above, this determination can be made byany known means including, but not limited to, inspecting andclassifying the frame based on one or more of the frame fields.Preemptable frames can be part of a flow or type of flow and identifiedbased on the frame fields, for example. As shown in FIG. 2, if the frameis not a preemptable frame (e.g., the frame is a preemptive frame), thenthe frame is transmitted from the network node without encapsulation at210.

Next, at 206, the network node determines if the preemptable framesatisfies a selective encapsulation rule. If the preemptable frame doesnot satisfy the selective encapsulation rule, the preemptable frame istransmitted from the network node without encapsulation at 210.Alternatively, if the preemptable frame satisfies the selectiveencapsulation rule, the preemptable frame is encapsulated andtransmitted from the network node at 208. By determining if thepreemptable frame satisfies the selective encapsulation rule, less thanall of the preemptable traffic is encapsulated, which reduces theaggregate overhead of encapsulation. In other words, although someframes are part of a preemptable flow, these frames will not bepreempted, for example, based on frame size, transmission time or someother criteria. Preemptable frames that will not ultimately be preemptedare therefore not encapsulated.

Optionally, the selective encapsulation rule can be a specified framelength. For example, the specified frame length can be a minimum framelength. If the preemptable frame is less than or equal to the specifiedframe length (e.g., the selective encapsulation rule is not satisfied),the preemptable frame is transmitted from the network node withoutencapsulation. If the preemptable frame is greater than the specifiedframe length (e.g., the selective encapsulation rule is satisfied), thepreemptable frame is encapsulated before transmission from the networknode. For example, the frame length can optionally be 128 bytes. Thisdisclosure contemplates that the frame length can be more or less than128 bytes. Additionally, in a network that supports jumbo frames such asframes having payloads greater than 1500 bytes, for example, selectiveencapsulation can be used to ensure network-wide jitter delay is notimpacted by transmission of the jumbo frames. For example, the jumboframes could satisfy the selective encapsulation rule and could beencapsulated and ready for preemption, if needed. The encapsulationoverhead is also insignificant due to the size of the jumbo frames.

Alternatively or additionally, the selective encapsulation rule can be ascheduled transmission time window. Optionally, the length of theschedule transmission window can be extended by and include a guard bandaround the schedule transmission window. If the preemptable frame istransmitted outside of the scheduled transmission time window (e.g., theselective encapsulation rule is not satisfied), the preemptable frame istransmitted from the network node without encapsulation. If thepreemptable frame is transmitted within the scheduled transmission timewindow (e.g., the selective encapsulation rule is satisfied), thepreemptable frame is encapsulated before transmission from the networknode. For example, the scheduled transmission time window can be aperiod of time during which time-critical network traffic is scheduledfor transmission. During this time period, preemptable traffic thatsatisfies the selective encapsulation rule can be preempted,interrupted, suspended, etc. to allow the time-critical traffic to flow.This disclosure contemplates that the scheduled transmission time windowcan be other periods of time.

The preemptable frame can be encapsulated with a preemption headerand/or a preemption trailer, for example, as discussed above with regardto FIG. 1. Optionally, the preemptable frame, if preempted, (e.g., thepreempted frame) can be split into a plurality of fragments, and each ofthe fragments can be encapsulated with a preemption header and/or apreemption trailer. The preemption header can optionally be attached ator near the beginning of the preemptable frame or a fragment of thepreempted frame. The preemption trailer can optionally be attached at ornear the end of the preemptable frame or the fragment of a preemptedframe. Additionally, the preemption header can optionally include anidentifying code (e.g., Ethertype) that defines the nature of thepreemptable frame or the fragment of the preempted frame and thatimplies the presence of a corresponding preemption trailer. In addition,the preemption trailer can include at least one of a start code, an endcode and a sequence number. A start code can indicate whether a fragmentis a first fragment of a preempted frame (e.g., code “10”). An end codecan indicate whether a fragment is a last fragment of a preempted frame(e.g., code “10”). A sequence number can identify the order of fragmentsof a preempted frame. Optionally, the preemption trailer of a firstframe fragment of the preempted frame can include the start coderepresenting a first frame and the sequence number. Additionally, thepreemption trailer of a last frame fragment of the preempted frame canoptionally include the end code representing a last frame and thesequence number. Further, the preemption trailer of an intermediateframe fragment of the preempted frame can optionally include thesequence number, and optionally neither the start code nor the end code.If the preemptable frame has not yet been split into fragments, thepreemptable frame can be encapsulated with the preemption header and thepreemption trailer. The preemption trailer can include the start codeindicating the first fragment (e.g., code “10”), the end code indicatingthe last fragment (e.g., “10”) and the sequence number set to anarbitrary value.

If the preemptable frame is split into fragments, each of the fragmentscan be encapsulated with the preemption header and the preemptiontrailer. One or more preemptive frames can be transmitted between anytwo fragments. The preemption trailer for the first fragment can includethe start code indicating the first fragment (e.g., code “10”), the endcode indicating a not end fragment (e.g., “01”) and the sequence numberset to an arbitrary value. The preemption trailer for each intermediatefragment can include the start code indicating a not start fragment(e.g., code “01”), the end code indicating a not end fragment (e.g.,“01”) and the sequence number set to an incrementally increasing value(e.g., the arbitrary value of the prior fragment +1). The preemptiontrailer for the last fragment can include the start code indicating anot start fragment (e.g., code “01”), the end code indicating the lastfragment (e.g., “10”) and the sequence number set to an incrementallyincreasing value from the prior intermediate fragment. As describedabove, this disclosure contemplates using any deterministic sequence forthe sequence number and should therefore not be limited to incrementallyincreasing units.

Referring now to FIG. 3, a flow diagram illustrating example operations300 for reception of preemptable network traffic is shown. At 302, aframe (or fragment of a frame) is received at a network node. Thenetwork node accepts the frame and verifies CRC and other frameparameters. Then, at 304, the network node determines if the frame orframe fragment includes a preemption header. Preemption headers andpreemption trailers are discussed in detail above with regard to FIG. 1.If the frame does not include a preemption header, the network node canprocess the frame at 310. For example, the network node can optionallyperform a table look up and forward the frame to its next hop. If theframe includes a preemption header, the network node can inspect thestart and end codes of a preemption trailer at 306.

If the start code indicates a first fragment (e.g., code “10”) and theend code indicates a last frame (e.g., code “10”), the frame is not afragment, and the network node can decapsulate the frame at 308. In FIG.3, this case is shown as “Start & End.” Optionally, the frame with thepreemption header and the preemption trailer can be forwarded throughthe network and only decapsulated at egress to allow cut-through networknodes to identify frames that may or may not be cut-through amongstpreemptive traffic. Then, at 310, the network node can process theframe, for example, as discussed above. Alternatively, if the start codeindicates that the frame is not a first fragment (e.g., code “01”), thenetwork node can discard the fragment at 318. In FIG. 3, this case isshown as “NOT Start.” Optionally, the process can return to step 302after the fragment is discarded at step 318. Alternatively, if the startcode indicates a first fragment (e.g., code “10”) and the end codeindicates that the frame is not a last frame (e.g., code “01”), theframe is a fragment (e.g., the first fragment). In FIG. 3, this case isshown as “Start & NOT End.”

After receiving each fragment, the network node can optionallydecapsulate the fragment. Optionally, the preemption header can beforwarded through the network and only decapsulated at egress asdiscussed above. At 312, the network node can receive a subsequentfragment. At 314, the network node can inspect the start and end codesand the sequence number of each of the subsequent fragments. If thestart code indicates that the fragment is not a first fragment (e.g.,code “01”), the end code indicates that the fragment is a last fragment(e.g., code “10”)and the sequence number is incrementally greater (e.g.,by 1) than the sequence number of the previous fragment, the networknode has received all of the fragments in the frame, and the networknode can reassemble the original frame (e.g., the preempted frame) at316 from the plurality of fragments. In FIG. 3, this case is shown as“Seq. No. +1 & NOT Start & End.” Then, at 310, the network node canprocess the frame as discussed above. Optionally, the network node canre-assemble the plurality of frame fragments that may have beeninterrupted by one or more preemptive frames during transmission. If thestart code indicates that the fragment is not a first fragment (e.g.,code “01”), the end code indicates that the fragment is not a lastfragment (e.g., code “01”)and the sequence number is incrementallygreater (e.g., by 1) than the sequence number of the previous fragment,the process can return to 312 where the network node receives asubsequent fragment because all of the fragments in the original frame(e.g., the preempted frame) have not yet been received. In FIG. 3, thiscase is shown as “Seq. No. +1 & NOT Start & NOT End.” If the start codeindicates that the fragment is not a first fragment and the sequencenumber is not incrementally greater (e.g., by 1) than the sequencenumber of the previous fragment, the fragment can be discarded at 318.In other words, a fragment is received out of sequence (and it is not afirst fragment of a new frame), and the received fragment and optionallyall previously stored fragments of the frame can be discarded. In FIG.3, this case is shown as “NOT Seq. No. +1 & NOT Start.” If the startcode indicates that the fragment is a first fragment and the sequencenumber is not incrementally greater (e.g., by 1) than the sequencenumber of the previous fragment, the process can return to 312 where thenetwork node receives a subsequent fragment of the new frame. In otherwords, a new first fragment of a frame is received unexpectedly, and thenew first fragment of the frame is stored and optionally all previouslystored fragments can be discarded. In FIG. 3, this case is shown as “NOTSeq. No. +1 & Start.” Optionally, the process can return to step 302after the fragment is discarded at step 318.

When the logical operations described herein are implemented insoftware, the process may execute on any type of computing architectureor platform. For example, referring to FIG. 4, an example computingdevice upon which embodiments of the invention may be implemented isillustrated. In particular, the packet-switching element (e.g., aswitch, router, gateway, etc.) discussed above may be a computingdevice, such as computing device 400 shown in FIG. 4. The computingdevice 400 may include a bus or other communication mechanism forcommunicating information among various components of the computingdevice 400. In its most basic configuration, computing device 400typically includes at least one processing unit 406 and system memory404. Depending on the exact configuration and type of computing device,system memory 404 may be volatile (such as random access memory (RAM)),non-volatile (such as read-only memory (ROM), flash memory, etc.), orsome combination of the two. This most basic configuration isillustrated in FIG. 4 by dashed line 402. The processing unit 406 canoptionally be a standard programmable processor that performs arithmeticand logic operations necessary for operation of the computing device400. Alternatively, the processing unit 406 can optionally be anapplication specific integrated circuit (“ASIC”) that performsarithmetic and logic operations necessary for operation of the computingdevice 400.

Computing device 400 may have additional features/functionality. Forexample, computing device 400 may include additional storage such asremovable storage 408 and non-removable storage 410 including, but notlimited to, magnetic or optical disks or tapes. Computing device 400 mayalso contain network connection(s) 416 that allow the device tocommunicate with other devices. Computing device 400 may also have inputdevice(s) 414 such as a keyboard, mouse, touch screen, etc. Outputdevice(s) 412 such as a display, speakers, printer, etc. may also beincluded. The additional devices may be connected to the bus in order tofacilitate communication of data among the components of the computingdevice 400. All these devices are well known in the art and need not bediscussed at length here.

The processing unit 406 may be configured to execute program codeencoded in tangible, computer-readable media. Computer-readable mediarefers to any media that is capable of providing data that causes thecomputing device 400 (i.e., a machine) to operate in a particularfashion. Various computer-readable media may be utilized to provideinstructions to the processing unit 406 for execution. Common forms ofcomputer-readable media include, for example, magnetic media, opticalmedia, physical media, memory chips or cartridges, a carrier wave, orany other medium from which a computer can read. Examplecomputer-readable media may include, but is not limited to, volatilemedia, non-volatile media and transmission media. Volatile andnon-volatile media may be implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules or other data and common forms are discussedin detail below. Transmission media may include coaxial cables, copperwires and/or fiber optic cables, as well as acoustic or light waves,such as those generated during radio-wave and infra-red datacommunication. Example tangible, computer-readable recording mediainclude, but are not limited to, an integrated circuit (e.g.,field-programmable gate array or application-specific IC), a hard disk,an optical disk, a magneto-optical disk, a floppy disk, a magnetic tape,a holographic storage medium, a solid-state device, RAM, ROM,electrically erasable program read-only memory (EEPROM), flash memory orother memory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices.

In an example implementation, the processing unit 406 may executeprogram code stored in the system memory 404. For example, the bus maycarry data to the system memory 404, from which the processing unit 406receives and executes instructions. The data received by the systemmemory 404 may optionally be stored on the removable storage 408 or thenon-removable storage 410 before or after execution by the processingunit 406.

Computing device 400 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by device 400 and includes both volatile and non-volatilemedia, removable and non-removable media. Computer storage media includevolatile and non-volatile, and removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules orother data. System memory 404, removable storage 408, and non-removablestorage 410 are all examples of computer storage media. Computer storagemedia include, but are not limited to, RAM, ROM, electrically erasableprogram read-only memory (EEPROM), flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can be accessed by computingdevice 400. Any such computer storage media may be part of computingdevice 400.

It should be understood that the various techniques described herein maybe implemented in connection with hardware or software or, whereappropriate, with a combination thereof. Thus, the methods andapparatuses of the presently disclosed subject matter, or certainaspects or portions thereof, may take the form of program code (i.e.,instructions) embodied in tangible media, such as floppy diskettes,CD-ROMs, hard drives, or any other machine-readable storage mediumwherein, when the program code is loaded into and executed by a machine,such as a computing device, the machine becomes an apparatus forpracticing the presently disclosed subject matter. In the case ofprogram code execution on programmable computers, the computing devicegenerally includes a processor, a storage medium readable by theprocessor (including volatile and non-volatile memory and/or storageelements), at least one input device, and at least one output device.One or more programs may implement or utilize the processes described inconnection with the presently disclosed subject matter, e.g., throughthe use of an application programming interface (API), reusablecontrols, or the like. Such programs may be implemented in a high levelprocedural or object-oriented programming language to communicate with acomputer system. However, the program(s) can be implemented in assemblyor machine language, if desired. In any case, the language may be acompiled or interpreted language and it may be combined with hardwareimplementations.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed:
 1. A method for intermittent encapsulation ofpreemptable network traffic at a network node, comprising: receivingnetwork traffic at the network node; determining if a frame within thenetwork traffic is a preemptable frame; if the frame is a preemptableframe, determining if the preemptable frame satisfies a selectiveencapsulation rule, wherein the selective encapsulation rule comprises aframe length; if the preemptable frame is less than or equal to aspecified frame length, transmitting the preemptable frame from thenetwork node without altering the preemptable frame; and if thepreemptable frame is greater than the specified frame length,encapsulating the preemptable frame by adding data to the preemptableframe and transmitting the encapsulated preemptable frame from thenetwork node, wherein the added data is at least one of a preemptionheader or a preemption trailer, and wherein application of the selectiveencapsulation rule reduces the aggregate encapsulation overhead for thenetwork traffic that is preemptable.
 2. The method of claim 1, whereinthe preemption trailer comprises at least one of a start code, an endcode, or a sequence number.
 3. The method of claim 1, furthercomprising: receiving a preempted frame at the network node; splittingthe preempted frame into a plurality of frame fragments; encapsulatingeach of the frame fragments; and transmitting each of the encapsulatedframe fragments from the network node, wherein each of the framefragments is respectively encapsulated with at least one of a preemptionheader or a preemption trailer, the preemption trailer comprising atleast one of a start code, an end code, or a sequence number.
 4. Themethod of claim 3, wherein the preemption trailer of a first framefragment of the preempted frame comprises the start code representing afirst frame and the sequence number.
 5. The method of claim 3, whereinthe preemption trailer of a last frame fragment of the preempted framecomprises the end code representing a last frame and the sequencenumber.
 6. The method of claim 3, wherein the preemption trailer of anintermediate frame fragment of the preempted frame comprises thesequence number.
 7. The method of claim 1, wherein the specified framelength is 128 bytes.
 8. The method of claim 1, wherein the specifiedframe length is 1500 bytes.
 9. A non-transitory computer readable mediumfor intermittent encapsulation of preemptable network traffic havingcomputer-executable instructions stored thereon that, when executed by anetwork node, cause the network node to: receive network traffic;determine if a frame within the network traffic is a preemptable frame;if the frame is a preemptable frame, determine if the preemptable framesatisfies a selective encapsulation rule, wherein the selectiveencapsulation rule comprises a frame length; if the preemptable frame isless than or equal to a specified frame length, transmit the preemptableframe without altering the preemptable frame; and if the preemptableframe is greater than the specified frame length, encapsulate thepreemptable frame by adding data to the preemptable frame and transmitthe encapsulated preemptable frame, wherein the added data is at leastone of a preemption header or a preemption trailer, and whereinapplication of the selective encapsulation rule reduces the aggregateencapsulation overhead for the network traffic that is preemptable. 10.The non-transitory computer readable medium of claim 9, wherein thepreemption trailer comprises at least one of a start code, an end code,or a sequence number.
 11. The non-transitory computer readable medium ofclaim 9, having further computer-executable instructions stored thereonthat, when executed by the network node, cause the network node to:receive a preempted frame; split the preempted frame into a plurality offrame fragments; encapsulate each of the frame fragments; and transmiteach of the encapsulated frame fragments, wherein each of the framefragments is respectively encapsulated with at least one of a preemptionheader or a preemption trailer, the preemption trailer comprising atleast one of a start code, an end code, or a sequence number.
 12. Thenon-transitory computer readable medium of claim 11, wherein thepreemption trailer of a first frame fragment of the preempted framecomprises the start code representing a first frame and the sequencenumber.
 13. The non-transitory computer readable medium of claim 11,wherein the preemption trailer of a last frame fragment of the preemptedframe comprises the end code representing a last frame and the sequencenumber.
 14. The non-transitory computer readable medium of claim 11,wherein the preemption trailer of an intermediate frame fragment of thepreempted frame comprises the sequence number.
 15. A network node forintermittent encapsulation of preemptable network traffic, comprising: aprocessing unit; and a memory communicatively connected to theprocessing unit, the memory having computer-executable instructionsstored thereon that, when executed by the processing unit, cause theprocessing unit to: receive network traffic; determine if a frame withinthe network traffic is a preemptable frame; if the frame is apreemptable frame, determine if the preemptable frame satisfies aselective encapsulation rule, wherein the selective encapsulation rulecomprises a frame length; if the preemptable frame is less than or equalto a specified frame length, transmit the preemptable frame withoutaltering the preemptable frame; and if the preemptable frame is greaterthan the specified frame length, encapsulate the preemptable frame byadding data to the preemptable frame and transmit the encapsulatedpreemptable frame, wherein the added data is at least one of apreemption header or a preemption trailer, and wherein application ofthe selective encapsulation rule reduces the aggregate encapsulationoverhead for the network traffic that is preemptable.
 16. The networknode of claim 15, wherein the preemption trailer comprises at least oneof a start code, an end code, or a sequence number.
 17. The network nodeof claim 15, wherein the memory has further computer-executableinstructions stored thereon that, when executed by the processing unit,cause the processing unit to: receive a preempted frame; split thepreempted frame into a plurality of frame fragments; encapsulate each ofthe frame fragments; and transmit each of the encapsulated framefragments, wherein each of the frame fragments is respectivelyencapsulated with at least one of a preemption header or a preemptiontrailer, the preemption trailer comprising at least one of a start code,an end code, or a sequence number.
 18. The network node of claim 17,wherein the preemption trailer of a first frame fragment of thepreempted frame comprises the start code representing a first frame andthe sequence number.
 19. The network node of claim 17, wherein thepreemption trailer of a last frame fragment of the preempted framecomprises the end code representing a last frame and the sequencenumber.
 20. The network node of claim 17, wherein the preemption trailerof an intermediate frame fragment of the preempted frame comprises thesequence number.